import time


def message_producer(author, book, consumer):  # 消息生产者
    message = None
    # 使用yield进行手工协程实现时，一定要首先发送一个空消息
    consumer.send(message)  # 先发送一个空消息
    for num in range(3):  # 循环数据生产
        message = f"《{book}》,📖图书作者：{author}"
        time.sleep(1)
        print(f"【生产者】{message}")  # 信息输出
        consumer.send(message)  # 消息输出


def message_consumer():  # 消息消费者
    while True:  # 持续循环
        result = yield
        print(f"【消费者】{result}")


def main():
    consumer = message_consumer()  # 获取函数饮用
    message_producer('韩朵朵', 'python开发实战', consumer)  # 数据生产


if __name__ == "__main__":
    main()
